Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Glossary.md #15278

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Create Glossary.md #15278

wants to merge 6 commits into from

Conversation

bbeggsTT
Copy link
Contributor

@bbeggsTT bbeggsTT commented Nov 20, 2024

Glossary.md added to TT-Metalium repo

Ticket

#13842

Problem description

Glossary.md added to TT-Metalium repo

What's changed

New document added.

Checklist

  • Post commit CI passes
  • Blackhole Post commit (if applicable)
  • Model regression CI testing passes (if applicable)
  • Device performance regression CI testing passes (if applicable)
  • New/Existing tests provide coverage for changes

Glossary of Terms added to TT-Metalium repo
@blozano-tt
Copy link
Contributor

I have often heard T3000 / T3K used interchangeably with Loud Box ... not sure if it is relevant to what you want to document.

Also ... I've heard the terms NCRISC and BRISC ... not sure if needed to be defined publicly

NoC Control RISC

They are two of the cores in the Tensix Core block.

@blozano-tt
Copy link
Contributor

Can we name the file something without spaces?

i.e. GLOSSARY.md spaces are very annoying in Linux.

@bbeggsTT bbeggsTT requested a review from davorchap November 20, 2024 23:53
@bbeggsTT bbeggsTT changed the title Create Glossary of Terms.md Create Glossary.md Nov 20, 2024
@blozano-tt
Copy link
Contributor

blozano-tt commented Nov 21, 2024

@bbeggsTT bbeggsTT requested review from blozano-tt and removed request for davorchap and blozano-tt November 22, 2024 23:19
Copy link
Contributor

@marty1885 marty1885 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was going through the PRs and seeing what feature are in development that I will be able to use shortly. Usually I go out of my way to not interfere with what TT does internally. But this document feels very not focused and confusing. I want to raise a flag as I feel newly joining FOSS developers would be more confused after reading the new document in the PR. And I want to avoid me explaining constantly on discord in the future.

I've highlighted some errors I saw at a glance. There's much more but the list is long enough.

Apologies if TT find this comment inappropriate or anything. Like said, I try to not interfere but this feels like an exception (we are on GitHub after all). LMK if I should delete it. Sorry for the trouble.

Best,
Martin

tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
Comment on lines +142 to +145
- **Topology -** Physical organization of a device.
- **Linear Topology -** All devices or components are connected to a common source.
- **Mesh Topology -** Network configuration where all devices or components are connected to each other.
- **Torus Topology -** Interconnect switchless network configuration connecting processors used often for parallel systems.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not how different topologies work. Also you can't organize one device. What you are describing is a star, fully connected and layered topo,

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this close? It's still wrong and not updated

@blozano-tt
Copy link
Contributor

blozano-tt commented Nov 23, 2024

But this document feels very not focused and confusing.

Why do you say it’s not focused?

I believe the primary purpose here is to disambiguate acronyms used in other documents.
Give extra context in some places.

PS, your input is always welcomed

@marty1885

@marty1885
Copy link
Contributor

marty1885 commented Nov 24, 2024

@blozano-tt A glossary would be one of the palces where new developers reads first, after readme and install. To understand what tech is used and what to expect - think it like a fire hose style introduction to the repository. The PR contains information not relevant to TT or the Metal repo. For instance

JVM - Java Virtual Machine
FET - Field Effect Transistor
...

These are not used anywhere in the repo. Metalium does not contain any Java code nor anything that compiles down to JVM. As a newcomer I'll be looking out for Java code, which does not exist. Also:

  • Mixed Precision - Optimization technique using floating-point types in a model to enhance performance and reduce memory usage. The following are different precision types:
    • Mixed Precision - Combined use of numerical precisions in a computational method.
    • Half Precision - FP16 data transfers.
    • Single Precision - FP32 data transfers.
    • Double Precision - FP64 data transfers.

If I were a newcomer, upon reading this part of the glossary, I would expect TT hardware to support FP64, FP32 and FP16. Which is not the case, Wormhole only supports FP32 and BFP16 (FP16 not enabled in Metalium). For TT, it would also be great to mention BFLOAT8/4/2_B formats as that's the actual mixed precision TT supports.

Also another critical error. Which will lead to me needing to correct newcomers on discord. Besides, it's bad look of TT having documentation errors on TT's own hardware. SFPU is the vector unit.

SFPU - Sundance Flash Programming Utility

IMO, a reasonable mental model is like, assuming you are a new developer reading the doc. How much false impression you'll get.

@blozano-tt
Copy link
Contributor

@marty1885 many good points. Thanks very much, we will clean this up.

@@ -0,0 +1,145 @@
# Glossary of Terms
## **Tenstorrent Devices:** ##
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should put the different names for harvested chips as well

tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
- **TT-MLIR -** Tenstorrent’s MLIR-based compiler.
- **TT-NN -** Tenstorrent’s library of optimized operators.
- **Watcher -** Tenstorrent monitoring tool.
## **Acronyms:** ##
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would group them into meaningful sections. Right now, this list seems really random.

tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
- **Cmake -** Cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method.
- **Deterministic Programming -** Programming style where the same input will always produce the same output.
- **dim -** Dimension.
- **DPRINT -** Configurable code formatting platform.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is our kernel print command

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this comment marked as resolved?

tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
@ntarafdar
Copy link
Contributor

ntarafdar commented Nov 25, 2024

I was going through the PRs and seeing what feature are in development that I will be able to use shortly. Usually I go out of my way to not interfere with what TT does internally. But this document feels very not focused and confusing. I want to raise a flag as I feel newly joining FOSS developers would be more confused after reading the new document in the PR. And I want to avoid me explaining constantly on discord in the future.

I've highlighted some errors I saw at a glance. There's much more but the list is long enough.

Apologies if TT find this comment inappropriate or anything. Like said, I try to not interfere but this feels like an exception (we are on GitHub after all). LMK if I should delete it. Sorry for the trouble.

Best,

Martin

No need to apologize @marty1885 , we really appreciate the feedback and this is why we are open source, to have everyone have the opportunity to contribute and provide feedback.

When I worked in past companies open-source projects sometimes were a proprietary repo ported to GitHub once a quarter or something, but here all our development and in progress PRs are all transparent allowing people to contribute even before things are in.

Updated this document according to reviewer feedback.
@bbeggsTT
Copy link
Contributor Author

Thanks for the feedback everyone. I created this glossary as a reference document for other documents in the future that can use a link to a glossary rather than having to redefine commonly used terminology throughout the TT-Metal Repo. To start I was just adding any terminology/acronym I was unfamiliar with while going through existing documentation. It is very helpful to have people letting me know where I am inaccurate or what should be omitted completely. If anyone sees any definitions that I am missing and should include here please let me know. Again, all feedback is welcome! Thanks!

Copy link
Contributor

@marty1885 marty1885 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The document is still error prone. Please check what's written is correct.

tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
tt_metal/Glossary.md Outdated Show resolved Hide resolved
Updates based on reviews.
minor edits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants